package com.quan.system.common.tools.qiniu;

import java.util.Map;

public class DomainHolder {
	
	// 缓存Bucket空间域名,将空间域名存放到ThreadLocal中，这样在没有单独开线程的情况下，业务系统任意代码位置都可以取得当前User
	private static final ThreadLocal<Map<String, Object>> DOMAIN_THREAD_LOCAL = new ThreadLocal<Map<String, Object>>();
	
	private DomainHolder() {
	}
	
	/**
	 * 获取SSOUser实例，此方法从ThreadLocal中获取，当调用处代码与请求主线程不处于同一线程时，此方法无法获取SSOUser实例
	 * @return
	 */
	public static Map<String, Object> getDomain() {
		return DOMAIN_THREAD_LOCAL.get();
	}

	/**
	 * 用户加入到threadLocal供业务系统使用<br>
	 * 以default为方法作用范围，仅本包内代码可以访问，将次方法对用户代码隐藏
	 * @param map
	 */
	public static void setDomain(Map<String, Object> map) {
		DOMAIN_THREAD_LOCAL.set(map);
	}
	
	public static void removeUser() {
		DOMAIN_THREAD_LOCAL.remove();
	}
}
